package cn.model;

import cn.constant.ContractConstant;
import cn.constant.TokenOrderConstant;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
@TableName(value = "t_contract_order")
public class ContractOrder extends Model<ContractOrder> {
    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "id",type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 交易对
     */
    private String pairsName;
    /**
     * 币种
     */

    private String coinName;
    /**
     * 主币名称
     */

    private String mainCur;
    /**
     * 杠杆倍数
     */

    private BigDecimal leverNum;
    /**
     * 杠杆倍数描述
     */

    private String leverDesc;
    /**
     * 保证金
     */

    private BigDecimal margin;
    /**
     * 合约乘数
     */

    private BigDecimal contractHands;
    /**
     * 价格
     */

    private BigDecimal price;
    /**
     * 平仓价格
     */

    private BigDecimal matchPrice;
    /**
     * 营收
     */

    private BigDecimal matchFee;
    /**
     * 平仓类型
     */

    private TokenOrderConstant.Close_Type closeType;
    /**
     * 数量
     */

    private BigDecimal coinNum;
    /**
     * 可用合约手数
     */

    private BigDecimal isContractHands;
    /**
     * 用户
     */

    private String member;
    /**
     * 交易类型
     */

    private ContractConstant.Trade_Type tradeType;
    /**
     * 价格类型
     */

    private ContractConstant.Price_Type priceType;
    /**
     * 状态
     */

    private TokenOrderConstant.Order_State orderState;
    /**
     * 手续费
     */

    private BigDecimal takeFee;
    /**
     * 类型
     */

    private TokenOrderConstant.Order_Type orderType;
    /**
     * 配置类型Id
     */

    private String contractMulId;
    /**
     * 配置类型对象
     */
    @TableField(exist = false)

    private ContractMul contractMul;
    /**
     * 扛杆类型Id
     */

    private String leverId;
    /**
     * 杠杆类型对象
     */
    @TableField(exist = false)

    private Lever lever;
    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;
    /**
     * 修改时间
     */
    @TableField("update_time")
    private Date updateTime;

}
